/*
 * Population.h
 *
 *  Created on: Oct 14, 2014
 *      Author: lfelipe
 */

#ifndef POPULATION_H_
#define POPULATION_H_

#include <vector>

#include "Individual.h"
#include  "GAQCAException.h"

class Population
{
    std::vector<Individual> individuals_;
    Individual *individual_default_;

public:
    Population();
    Population(int population_size, Individual individual_default);
    virtual ~Population();

    void random_populate(int population_size)  throw(GAQCAException);
    void clear_population();

    const std::vector<Individual>& get_individuals() const;
    void set_individuals(const std::vector<Individual>& individuals);
    const Individual& get_individual_default() const;
    void set_individual_default(const Individual individualDefault);
};

#endif /* POPULATION_H_ */
